package cn.sc.summer.rabbitmq.service;

import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;

import javax.annotation.Resource;

/**
 * 接口：消费者统一消费接口
 *
 * @author a-xin
 * @date 2024/2/5 11:05
 */
public abstract class RabbitConsumerService {

    @Resource
    public RabbitErrorService rabbitErrorService;

    /**
     * 接口: 消费接口信息
     *
     * @param jsonStr 消息体
     * @param message rabbit消息体
     * @param channel rabbit队列
     * @author a-xin
     * @date 2023/9/23 15:48
     */
    public abstract void consumer(String jsonStr, Message message, Channel channel);

    /**
     * 带有返回值的消费队列
     *
     * @param jsonStr 消息体
     * @param message rabbit消息体
     * @param channel rabbit队列
     * @param <T>     返回值泛型
     * @return 返回值
     */
    <T> T consumerBack(String jsonStr, Message message, Channel channel) {
        return null;
    }

}
